package com.glela.common.util;

/**
 * 转型操作工具类
 * @author liujie
 *
 */
public class CastUtil {
	
	public static String castString(Object obj){
		return CastUtil.castString(obj, "");
	}
	
	/**
	 * 转为String型（提供默认值）
	 * @param obj
	 * @param defaultValue
	 * @return
	 */
	public static String castString(Object obj, String defaultValue){
		return obj != null ? String.valueOf(obj)  : defaultValue;
	}
	
	/**
	 * 转型为double
	 * @param obj
	 * @return
	 */
	public static double castDouble(Object obj){
		return CastUtil.castDouble(obj, 0);
		
	}
	
	/**
	 * 转型为double(提供默认值)
	 * @param obj
	 * @param defaultValue
	 * @return
	 */
	public static double castDouble(Object obj, double defaultValue){
		double doubleValue = defaultValue;
		if(obj != null){
			String strValue = castString(obj);
			if(StringUtil.isNotEmpty(strValue)){
				try {
					doubleValue=Double.parseDouble(strValue);
				} catch (NumberFormatException e) {
					e.printStackTrace();
					doubleValue = defaultValue;
				}
			}
		}
		return doubleValue;
	}
	
	/**
	 * 转型为long
	 * @param obj
	 * @return
	 */
	public static long castLong(Object obj){
		return CastUtil.castLong(obj, 0);
	}
	
	/**
	 * 转型为long(提供默认值)
	 * @param obj
	 * @param defaultValue
	 * @return
	 */
	public static long castLong(Object obj, long defaultValue){
		long longValue = defaultValue;
		if(obj != null){
			String strValue = castString(obj);
			if(StringUtil.isNotEmpty(strValue)){
				try {
					longValue=Long.parseLong(strValue);
				} catch (NumberFormatException e) {
					e.printStackTrace();
					longValue = defaultValue;
				}
			}
		}
		return longValue;
	}
	
	/**
	 * 转型为int
	 * @param obj
	 * @return
	 */
	public static int castInt(Object obj){
		return CastUtil.castInt(obj, 0);
	}
	
	/**
	 * 转型为int(提供默认值)
	 * @param obj
	 * @param defaultValue
	 * @return
	 */
	public static int castInt(Object obj, int defaultValue){
		int intValue = defaultValue;
		if(obj != null){
			String strValue = castString(obj);
			if(StringUtil.isNotEmpty(strValue)){
				try {
					intValue=Integer.parseInt(strValue);
				} catch (NumberFormatException e) {
					e.printStackTrace();
					intValue = defaultValue;
				}
			}
		}
		return intValue;
	}
	
	/**
	 * 转型为int
	 * @param obj
	 * @return
	 */
	public static boolean castBoolean(Object obj){
		return CastUtil.castBoolean(obj, false);
	}
	
	/**
	 * 转型为int(提供默认值)
	 * @param obj
	 * @param defaultValue
	 * @return
	 */
	public static boolean castBoolean(Object obj, boolean defaultValue){
		boolean booleanValue = defaultValue;
		if(obj != null){
			booleanValue=Boolean.parseBoolean(castString(obj));
		}
		return booleanValue;
	}
	

}
